package org.framework.common.api.service.repository;

import java.io.Serializable;

import javax.persistence.EntityManager;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
import org.springframework.data.repository.core.support.RepositoryFactorySupport;

/**
 * Spring Data JPA 自定义工厂
 * <p>描述: </p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date 2016年1月20日 上午11:01:08
 * @version 1.0.2016
 */
public class CommonRepositoryFactoryBean<T extends JpaRepository<S, ID>, S, ID extends Serializable> extends JpaRepositoryFactoryBean<T, S, ID> {

	/**
	 * 创建 SpringDataJpa 容器工厂
	 * @see org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean#createRepositoryFactory(javax.persistence.EntityManager)
	 * @author chanlong(陈龙)
	 * @date 2016年1月20日 上午11:00:57
	 */
	@Override
	protected RepositoryFactorySupport createRepositoryFactory(final EntityManager em) {
		return new CommonRepositoryFactory(em);
	}
	
}
